import matplotlib.pyplot as plt
from matplotlib.figure import Figure
import numpy as np

x = np.linspace(0, 2, 500)
y1 = np.sin(2 * np.pi * x)
y2 = 1.1 * np.sin(3 * np.pi * x)

# sharex="all" 所有axis共享 x 轴刻度、范围和标签
fig, ax = plt.subplots(3, 1, sharex="all")
fig: Figure = fig

"""
    参数通常以三个整数或者一个三位整数的形式传入，其含义分别为：
    第一个数字表示子图布局的行数。
    第二个数字表示子图布局的列数。
    第三个数字表示当前要添加子图的序号（序号从 1 开始，按从左到右、从上到下的顺序排列）
    122:1行两列，第二个子图，一共1x2=2个子图
"""
ax_add = fig.add_subplot(122)

# "between y2 and 0"
ax[0].fill_between(x, 0, y2, alpha=0.5)
ax[0].set_ylim(-1.2, 1.2)
# "between y2 and 1.1"
ax[1].fill_between(x, y2, 1.1, alpha=0.5)
ax[1].set_ylim(-1.2, 1.2)
# "between y1 and y2"
ax[2].fill_between(x, y1, y2, alpha=0.5)
ax[2].set_xlim(0, 2)
ax[2].set_ylim(-1.2, 1.2)
plt.show()
